home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Pinup 2.1.0 / src / errorDLOG.c next >
Text File  |  1994-07-02  |  1KB  |  59 lines

  1. /* errorDLOG.c */
  2.  
  3. #include <Dialogs.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include "errorDLOG.h"
  7.  
  8. void ErrorDLOG( char *errMsg, Boolean fatal )
  9. {
  10.      GrafPtr            oldPort;
  11.      Str255             errTextStr;
  12.      short            strlength;
  13.      short            itemSelected;
  14.      DialogPtr        errDLOG;
  15.      
  16.      // convert the c-string to a pascal string:
  17.           
  18.      // get the length of the string in characters
  19.      strlength = strlen( errMsg );
  20.      
  21.      // truncate anything over 255 characters
  22.      if( strlength > 255 )
  23.          strlength = 255;
  24.      
  25.      // set the length byte    
  26.      *((char *)errTextStr) = (unsigned char) strlength;
  27.      
  28.      // copy the string over
  29.      strncpy( (char *)(errTextStr+1), errMsg, strlength );
  30.      
  31.      // use it as ^0 in the DLOG 
  32.      ParamText( errTextStr, 0, 0, 0 );
  33.  
  34.      // bring up the dialog
  35.      GetPort( &oldPort );
  36.     SysBeep(0);
  37.  
  38.     errDLOG = GetNewDialog( k_alert_ID, nil, (WindowPtr)-1L );
  39.     ShowWindow( errDLOG );
  40.     ModalDialog( nil, &itemSelected );
  41.     DisposeDialog( errDLOG );
  42.  
  43.     SetPort( oldPort );
  44.     
  45.     // handle the button choice.
  46.     switch( itemSelected )
  47.     {
  48.         case -1:     // dialog not drawn!!
  49.                     break;
  50.         default:    // don't do anything.. we only have one button!
  51.                     break;
  52.     }
  53.     
  54.     if( fatal )
  55.         ExitToShell();
  56. }
  57.     
  58.     
  59.